#include "wx/wxprec.h"
#if wxUSE_XRC && wxUSE_CHECKBOX

#include "wx/xrc/xh_chckb.h"

IMPLEMENT_DYNAMIC_CLASS( wxCheckBoxXmlHandler, wxXmlResourceHandler )

wxCheckBoxXmlHandler::wxCheckBoxXmlHandler()
  : wxXmlResourceHandler() {
  XRC_ADD_STYLE( wxCHK_2STATE );
  XRC_ADD_STYLE( wxCHK_3STATE );
  XRC_ADD_STYLE( wxCHK_ALLOW_3RD_STATE_FOR_USER );
  XRC_ADD_STYLE( wxALIGN_RIGHT );
  AddWindowStyles();
}

wxObject *wxCheckBoxXmlHandler::DoCreateResource() {
  XRC_MAKE_INSTANCE( control, wxCheckBox )
  control->Create( m_parentAsWindow,
                   GetID(),
                   GetText( wxT( "label" ) ),
                   GetPosition(), GetSize(),
                   GetStyle(),
                   wxDefaultValidator,
                   GetName() );
  control->SetValue( GetBool( wxT( "checked" ) ) );
  SetupWindow( control );
  return control;
}

bool wxCheckBoxXmlHandler::CanHandle( wxXmlNode *node ) {
  return IsOfClass( node, wxT( "wxCheckBox" ) );
}

#endif // wxUSE_XRC && wxUSE_CHECKBOX
